package com.lanvideo.service;

import com.lanvideo.dao.QuestionDao;
import com.lanvideo.entity.Question;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 题目服务类
 */
@Service
public class QuestionService {

    @Autowired
    private QuestionDao questionDao;

    /**
     * 获取所有题目
     */
    public List<Question> getAllQuestions() {
        return questionDao.findAll();
    }

    /**
     * 管理员获取所有题目（包含创建者信息）
     */
    public List<Question> getAllQuestionsForAdmin() {
        return questionDao.findAllWithTeacherInfo();
    }

    /**
     * 根据ID获取题目
     */
    public Question getQuestionById(Integer id) {
        return questionDao.findById(id);
    }

    /**
     * 创建题目
     */
    public boolean createQuestion(Question question) {
        return questionDao.createQuestion(question);
    }

    /**
     * 更新题目
     */
    public boolean updateQuestion(Question question) {
        return questionDao.updateQuestion(question);
    }

    /**
     * 删除题目
     */
    public boolean deleteQuestion(Integer id) {
        return questionDao.deleteQuestion(id);
    }

    /**
     * 获取随机题目
     */
    public List<Question> getRandomQuestions(int count) {
        return questionDao.getRandomQuestions(count);
    }

    /**
     * 根据老师ID获取题目列表
     */
    public List<Question> getQuestionsByTeacherId(Integer teacherId) {
        return questionDao.findByTeacherId(teacherId);
    }

    /**
     * 根据分类获取题目列表
     */
    public List<Question> getQuestionsByCategory(String category) {
        return questionDao.findByCategory(category);
    }

    /**
     * 根据难度获取题目列表
     */
    public List<Question> getQuestionsByDifficulty(Integer difficulty) {
        return questionDao.findByDifficulty(difficulty);
    }

    /**
     * 获取所有分类
     */
    public List<String> getAllCategories() {
        return questionDao.getAllCategories();
    }

    /**
     * 搜索题目
     */
    public List<Question> searchQuestions(String keyword, String category, Integer difficulty, Integer teacherId) {
        return questionDao.searchQuestions(keyword, category, difficulty, teacherId);
    }
}
